package org.zwy.gradetrack.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.zwy.gradetrack.entity.InternshipUnit;

import java.util.List;

/**
 * 实习单位Service接口
 */
public interface InternshipUnitService extends IService<InternshipUnit> {
    
    /**
     * 分页查询实习单位列表
     *
     * @param page 分页参数
     * @param name 单位名称（可选）
     * @return 分页结果
     */
    Page<InternshipUnit> pageInternshipUnits(Page<InternshipUnit> page, String name);
    
    /**
     * 创建实习单位
     *
     * @param internshipUnit 实习单位信息
     * @return 是否创建成功
     */
    boolean createInternshipUnit(InternshipUnit internshipUnit);
    
    /**
     * 更新实习单位信息
     *
     * @param internshipUnit 实习单位信息
     * @return 是否更新成功
     */
    boolean updateInternshipUnit(InternshipUnit internshipUnit);
    
    /**
     * 删除实习单位
     *
     * @param id 实习单位ID
     * @return 是否删除成功
     */
    boolean deleteInternshipUnit(Long id);
    
    /**
     * 根据ID获取实习单位详情
     *
     * @param id 实习单位ID
     * @return 实习单位信息
     */
    InternshipUnit getInternshipUnitById(Long id);
    
    /**
     * 根据名称查询实习单位
     *
     * @param name 单位名称
     * @return 实习单位列表
     */
    List<InternshipUnit> getInternshipUnitsByName(String name);
    
    /**
     * 批量导入实习单位数据
     *
     * @param internshipUnits 实习单位列表
     * @return 是否导入成功
     */
    boolean batchImport(List<InternshipUnit> internshipUnits);
} 